package android.slc.jacob;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.resource.NoResourceException;
import cn.hutool.core.io.resource.Resource;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.util.URLUtil;

/**
 * Created with IntelliJ IDEA.
 *
 * @author： slc
 * @date： 2023/04/26
 * @description：
 * @modifiedBy：
 * @version: 1.0
 */
public class JacobUtils {
    private static boolean init = false;

    /*public static void main(String[] args) {
        init();
    }*/

    public static void init() {
        init(runJarMode(), true);
    }

    public static void init(boolean runJarMode, boolean isOverride) {
        if (init) {
            return;
        }
        FileResourceUtils.copyResource("jacob_dll", FileUtil.file(System.getProperty("user.dir")), isOverride);
        init = true;
    }

    public static boolean isInit() {
        return init;
    }

    /**
     * 是否运行在jar包中，而非开发工具中
     *
     * @return
     */
    private static boolean runJarMode() {
        return runJarMode("jacob-run-jar-perception");
    }

    /**
     * 是否运行在jar包中，而非开发工具中
     *
     * @param resPath
     * @return
     */
    private static boolean runJarMode(String resPath) {
        try {
            Resource resourceObj = ResourceUtil.getResourceObj(resPath);
            return URLUtil.isJarURL(resourceObj.getUrl());
        } catch (NoResourceException e) {
            return false;
        }
    }
}
